import Wechat from "../../utils/wechat";
import Router from "../../utils/router";
import Toast from "../../utils/toast";
import fileUtil from "../../utils/fileUtil";
import { convert as convert } from "../../utils/baiduUtil";
import util from "../../utils/util";

Page({

	currentPageTitle: '图像风格转换',

	/**
	 * 页面的初始数据
	 */
	data: {
		/**
		 * 可选择的转换风格列表
		 */
		converterTypeItems: [
			{option: 'cartoon', name: '卡通画',default: true},
			{option: 'pencil', name: '铅笔'},
			{option: 'color_pencil', name: '彩色铅笔画'},
			{option: 'warm', name: '彩色糖块油画'},
			{option: 'wave', name: '神奈川冲浪里油画'},
			{option: 'lavender', name: '薰衣草油画'},
			{option: 'mononoke', name: '奇异油画'},
			{option: 'scream', name: '呐喊油画'},
			{option: 'gothic', name: '哥特油画'}
		],

		/**
		 * 默认选中的风格
		 */
		selectedStyle: null
	},

	/**
	 * 选择了类型的事件
	 * @param event
	 */
	doSelectConverterType: function (event){
		// 选中之后，改值，选中了什么风格
		this.setData({
			selectedStyle: event.target.dataset.target.option
		});
	},

	/**
	 * 打开相册
	 * @param events
	 */
	openAlbum: function(events){
		Toast.beginLoadingToast('正在处理',true);
		Wechat.openAlbum(1)
			.then(files=>{
				this.nextStep(files.tempFiles[0]);
		}).finally(()=>{
			// 关闭加载中弹窗
			Toast.closeLoadingToast();
		});
	},

	/**
	 * 从相机拍照
	 */
	openCamera: function(){
		Toast.beginLoadingToast('正在处理',true);
		Wechat.simpleCamera(1)
			.then(files=>{
				this.nextStep(files.tempFiles[0]);
		}).finally(()=>{
			// 关闭加载中弹窗
			Toast.closeLoadingToast();
		});
	},

	/**
	 * 下一步，跳转页面，并且把上传的图片带过去
	 * @param param
	 */
	nextStep: function (param) {
		Toast.beginLoadingToast('正在上传',true);
		// 这里应该调百度接口处理图片
		const base64Img = fileUtil.readFileToBase64(param.path);
		convert(base64Img,this.data.selectedStyle)
		.then(res=>{
			// 拿到百度请求成功的图片数据
			const base64Img = res.data.image;
			// 带着图片跳转页面，并且显示出来
			Router.navigate(`/pages/processing/index?source=${base64Img}&original=${this.currentPageTitle}`);
		}).catch(error=>{
			util.openErrorToast('图片处理失败！');
		});
		// 	.finally(()=>{
		// 	Toast.closeLoadingToast();
		// });
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {

	},

	/**
	 * 生命周期函数--监听页面初次渲染完成，只会在当前页面调用一次，适合做初始化数据的相关操作
	 */
	onReady: function () {
		const defaultSelected = this.data.converterTypeItems.find(item=> item && item.default);
		this.setData({
			selectedStyle: defaultSelected.option
		})
	},

	/**
	 * 生命周期函数--监听页面显示,该函数会在关闭弹窗后，再次调用
	 */
	onShow: function () {
	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	}
})
